#include <stdio.h>
#include <stdlib.h>
#include <string.h>


#define ELMER_LEN 10    // dlugosc elmera - domyslnie 10
#define EXPECTED_LEN 509   // oczekiwana dlugosc rozwiazania?

#define TRESHOLD 30  // ile razy dany elmer moze zostac uzyty w rozwiazaniu
#define ERROR_COUNT 32

/* --------------------------------------------------------------------------------
   DEKLARACJE ZMIENNYCH GLOBALNYCH
   -------------------------------------------------------------------------------- */
   
char prev[EXPECTED_LEN];
char next[EXPECTED_LEN];
// tablica z danymi
struct elmer data[498];

struct elmer {
    char *seq;
    short int used;
    int weight;
    short int next_count; // ile moze byc dopasowanych po nim
};

/* --------------------------------------------------------------------------------
   FUNKCJE Z essential.c
   -------------------------------------------------------------------------------- */
   
void prepare(int);
int solve(int);   
   
/* --------------------------------------------------------------------------------
   FUNKCJE Z functions.c
   -------------------------------------------------------------------------------- */
int match(char *prev, char *next);
int match8(char *prev, char *next);
int match7(char *prev, char *next);
int match6(char *prev, char *next);
void QuickSort(struct elmer T[], int Lo, int Hi);

int wczytaj(char *f_name);
int get_used(int);
int get_used_count(int);

int count_next(int curr, int elmer_count);
int count_next2(int curr, int elmer_count);
